schm-oss-processing-sapi
OSS API 中文文档
schm-oss-processing-sapi
接口应用描述: 阿里云对象存储OSS API应用,可以进行对存储对象的读、写、修改、下载、在线预览等操作。
阿里云对象OSS的官方描述文档: https://www.aliyun.com/product/oss
DEV_URL(DEV环境请求地址): https://schm-api-dev.shiseido.cn/schm-oss-processing-sapi
UAT_URL(UAT环境请求地址): https://schm-api-test.shiseido.cn/schm-oss-processing-sapi
PROD_URL(生产环境请求地址): https://schm-api.shiseido.cn/schm-oss-processing-sapi
接口请求方式:
使用HTTP request,需要按以下要求传入Header,Request Body,Request Param等。
通用Header参数
鉴权信息
所有请求的Header必须包含以下key-value参数作为鉴权信息,该信息需要向管理员申请。
client_id: fa98****3452
client_secret: 108b****41f2
OSS连接信息
接口可以动态连接OSS,再对所连接的OSS进行操作。连接方式为两种。
- 填写完整的endPoint,accessKeyId,accessKeySecret,bucketName信息,以这些信息连接到目标OSS。
- 提前在系统数据库中录入endPoint,accessKeyId,accessKeySecret,bucketName信息,定义好这一条数据的主键key,以这个主键key作为oss参数传入,系统自动连接。
所以在Header中传入OSS信息有两种方式。
填写完整信息:
endPoint: http****s.com
accessKeyId: LTAI****YGqY
accessKeySecret: Whn3****Hjl7
bucketName: cna****nter
或
填写注册好的OSS主键:
oss: mdm****nter
系统将以OSS主键key为更高优先级。
所以Header参数需要包含鉴权信息和OSS连接信息
接口列表:
请求path | 说明 |
---|---|
/object/list | 传入文件(oss object)地址前缀,返回这个地址前缀下所有文件和文件夹。 |
/object/get | 传入文件完整路径,以文本形式返回该文件内容。 |
/object/move | 传入“来源完整路径”与“目标完整路径”,将文件进行移动。由于传入的是完整路径,也可以起到重命名的功能。 |
/object/put | 将请求体中的内容写进入参(文件完整路径)所对应的文件中。如果文件不存在将创建该文件。 |
/object/download | 以流形式下载文件。 |
/object/upload | 将文件上传到指定路径中。 |
/object/copy | 传入“来源完整路径”与“目标完整路径”,将文件进行复制。 |
/object/delete | 传入文件完整路径,并将文件进行删除。 |
List Object
接口请求地址: /object/list
接口描述: 传入文件(oss object)地址前缀,返回这个地址前缀下所有文件和文件夹。
接口请求Method: HTTP POST
Request Header 说明:
描述 | 参数名 | 是否必填 | 数据类型 |
---|---|---|---|
需要列举的顶级目录地址 | path | Y | String |
连接OSS所需accessKeyId | accessKeyId | N | String |
连接OSS所需accessKeySecret | accessKeySecret | N | String |
oss bucket | bucket | N | String |
系统中所记录的oss key | oss | N | String |
oss code 或 oss连接信息设置,必须选择一个输入。如果同时输入,则优先输入oss代码。
Request Body Description:
Field Description | Field Name | Required | Type |
---|---|---|---|
所需列出文件列表的顶级目录 | path | Y | String |
最大返回条目 | maxKeys | N | String or Number |
模糊搜索的关键词。以path参数为目录,搜索这个目录下所有子目录及文件,列举出包含模糊搜索关键词的文件条目。 | search | N | String or Number |
参数举例:
{
"path":"MDM/MULE/"
}
由于OSS实际上是扁平化存储机制,也就是说所有文件的放置其实是没有层级结构的,仅以前缀来模拟出目录层级。
list接口实际上是列举出以path参数为前缀的所有文件,所以默认情况下,看起来会返回该目录下以及该目录的子目录下所有文件。
如果想尽返回path当前目录下的文件和文件夹,path参数以“/”结尾即可。如:"path":"MDM/MULE/BACKUP/",就会仅返回BACKUP目录下的文件和文件夹,其子目录内容不会返回。
按照文件修改时间倒序(从新到旧)排序。
返回值:
说明 | 字段 | 数据类型 |
---|---|---|
文件和目录列表 | ObjectList | Array |
成功标识 | Code | String |
OSS存储桶名称 | bucketName | String |
文件或文件夹完整路径 | Key | String |
最后修改时间 (timestamp) | lastModified | Number |
文件大小,如果返回0,代表这是个文件夹 | size | String |
文件名,当返回文件夹时该字段为空 | fileName | String |
文件类型(扩展名),当返回文件夹时该字段为空 | fileType | String |
一个可以在线展示打开文件的链接,只有以预先注册osskey方式才会返回该字段 | viewPath | String |
返回值举例:
{
"ObjectList": [{
"bucketName": "cna-dev-jobcenter",
"lastModified": 1655026866000,
"size": 0,
"key": "MDM/MULE/",
"fileName": null,
"fileType": null,
"viewPath": null
},
{
"bucketName": "cna-dev-jobcenter",
"lastModified": 1655026882000,
"size": 0,
"key": "MDM/MULE/BACKUP/",
"fileName": null,
"fileType": null,
"viewPath": null
},
{
"bucketName": "cna-dev-jobcenter",
"lastModified": 1665561801000,
"size": 427,
"key": "MDM/MULE/BACKUP/202210/4000004574_BatchMaster_20220622-142424-344.xml",
"fileName": "4000004574_BatchMaster_20220622-142424-344.xml",
"fileType": "xml",
"viewPath": "https://schm-api-test.shiseido.cn/schm-oss-processing-sapi/object/view?oss=mdm&path=MDM/MULE/BACKUP/202210/4000004574_BatchMaster_20220622-142424-344.xml"
},
{
"bucketName": "cna-dev-jobcenter",
"lastModified": 1665561816000,
"size": 435,
"key": "MDM/MULE/BACKUP/202210/4000004574_BatchMaster_20220622-142424-357.xml",
"fileName": "4000004574_BatchMaster_20220622-142424-357.xml",
"fileType": "xml",
"viewPath": "https://schm-api-test.shiseido.cn/schm-oss-processing-sapi/object/view?oss=mdm&path=MDM/MULE/BACKUP/202210/4000004574_BatchMaster_20220622-142424-357.xml"
}
],
"Code": "Success"
}
Get Object
接口请求地址: /object/get
接口描述: 传入文件完整路径,以文本形式返回该文件内容。
接口请求Method: HTTP POST
Header参数:
通用Header参数,无额外参数。
Request Body 说明:
描述 | 参数名 | 是否必填 | 数据类型 |
---|---|---|---|
需要获取内容的文件的完整路径 | path | Y | String |
参数举例:
{
"path":"MDM/MULE/BACKUP/202210/4000004574_BatchMaster_20220622-142424-344.xml"
}
返回值举例:
整个返回体就是文件内容
the path file content
Move Object
接口请求地址: /object/move
接口描述: 传入“来源完整路径”与“目标完整路径”,将文件进行移动。由于传入的是完整路径,也可以起到重命名的功能。
接口请求Method: HTTP POST
Header参数:
通用Header参数,无额外参数。
Request Body 说明:
描述 | 参数名 | 是否必填 | 数据类型 |
---|---|---|---|
移动来源完整文件路径 | sourceObject | Y | String |
移动去向完整文件路径 | destinationObject | Y | String |
参数举例:
{
"sourceObject": "MDM/MULE/1000004574_BatchMaster_20220707-142424-100.xml",
"destinationObject": "MDM/MULE/ERROR/1000004574_BatchMaster_20220707-142424-100.xml"
}
返回值:
Field Description | Field Name | Type |
---|---|---|
成功标识 | Code | String |
移动来源完整文件路径 | sourceObject | String |
移动去向完整文件路径 | destinationObject | String |
返回值举例:
{
"Code": "Success",
"SourceObject": "MDM/MULE/1000004574_BatchMaster_20220707-142424-100.xml",
"DestinationObject": "MDM/MULE/ERROR/1000004574_BatchMaster_20220707-142424-100.xml"
}
Put Object
接口请求地址: /object/put
接口描述: 将请求体中的内容写进入参(文件完整路径)所对应的文件中。如果文件不存在将创建该文件。
接口请求Method: HTTP POST
Header参数:
除通用Header参数,还需:
参数描述 | 参数名 | 是否必填 | 类型 |
---|---|---|---|
需要变更的文件的完整路径 | path | Y | String |
Header额外参数举例:
path: MDM/MULE/1000004574_BatchMaster_20220707-142424-100.xml
Request Body 说明:
整个请求体内容就是需要写入文件的内容文本
返回值:
说明 | 字段 | 数据类型 |
---|---|---|
文件名 | (动态的文件名作为key) | Array |
成功标识 | Code | String |
OSS存储桶名称 | bucketName | String |
文件或文件夹完整路径 | Key | String |
最后修改时间 (timestamp) | lastModified | Number |
文件大小,如果返回0,代表这是个文件夹 | size | String |
文件名,当返回文件夹时该字段为空 | fileName | String |
文件类型(扩展名),当返回文件夹时该字段为空 | fileType | String |
一个可以在线展示打开文件的链接,只有以预先注册osskey方式才会返回该字段 | viewPath | String |
返回值举例:
{
"MDM/MULE/BACKUP/TEST/test.file": {
"Content-Type": "application/octet-stream",
"Date": 1670293319000,
"Last-Modified": 1670293319000,
"bucketName": "cna-dev-jobcenter",
"fileName": "test.file",
"fileType": "file",
"viewPath": "https://schm-api-test.shiseido.cn/schm-oss-processing-sapi/object/view?oss=mdm&path=MDM/MULE/BACKUP/TEST/test.file"
},
"Code": "Success"
}
Download Object
接口请求地址: /object/download
接口描述: 以流形式下载文件。
Request method: HTTP POST
Header参数:
通用Header参数,无额外参数。
Request Body 说明:
描述 | 参数名 | 是否必填 | 数据类型 |
---|---|---|---|
需要下载文件的完整路径 | path | Y | String |
参数举例:
{
"path": "MDM/MULE/1000004574_BatchMaster_20220707-142424-100.xml"
}
返回值:
返回文件的流,可以直接进行下载。
Uplaod Object
接口请求地址: /object/upload
接口描述: 将文件上传到指定路径中。
接口请求Method: HTTP POST multipart/form-data
Header参数:
通用Header参数,无额外参数。
Request Body 说明:
需要以form-data形式传参。
描述 | 参数名 | 是否必填 | 数据类型 |
---|---|---|---|
需要上传的文件,支持多个文件 | file | Y | file |
将文件上传放置的路径,所有文件都会放到这个目录里 | path | Y | String |
参数举例:
path: MDM/MULE/BACKUP/TEST/
file: !file1,!file2
返回值:
说明 | 字段 | 数据类型 |
---|---|---|
文件名 | (动态的文件名作为key) | Object |
成功标识 | Code | String |
OSS存储桶名称 | bucketName | String |
文件或文件夹完整路径 | Key | String |
最后修改时间 (timestamp) | lastModified | Number |
文件大小,如果返回0,代表这是个文件夹 | size | String |
文件名,当返回文件夹时该字段为空 | fileName | String |
文件类型(扩展名),当返回文件夹时该字段为空 | fileType | String |
一个可以在线展示打开文件的链接,只有以预先注册osskey方式才会返回该字段 | viewPath | String |
返回值举例:
{
"MDM/MULE/BACKUP/TEST/test.file": {
"Content-Type": "application/octet-stream",
"Date": 1670293319000,
"Last-Modified": 1670293319000,
"bucketName": "cna-dev-jobcenter",
"fileName": "test.file",
"fileType": "file",
"viewPath": "https://schm-api-test.shiseido.cn/schm-oss-processing-sapi/object/view?oss=mdm&path=MDM/MULE/BACKUP/TEST/test.file"
},
"MDM/MULE/BACKUP/TEST/test2.file": {
"Content-Type": "application/octet-stream",
"Date": 1670293319000,
"Last-Modified": 1670293319000,
"bucketName": "cna-dev-jobcenter",
"fileName": "test2.file",
"fileType": "file",
"viewPath": "https://schm-api-test.shiseido.cn/schm-oss-processing-sapi/object/view?oss=mdm&path=MDM/MULE/BACKUP/TEST/test2.file"
},
"Code": "Success"
}
Copy Object
接口请求地址: /object/copy
接口描述: 传入“来源完整路径”与“目标完整路径”,将文件进行拷贝。
接口请求Method: HTTP POST
Header参数:
通用Header参数,无额外参数。
Request Body 说明:
描述 | 参数名 | 是否必填 | 数据类型 |
---|---|---|---|
复制来源完整文件路径 | sourceObject | Y | String |
复制去向完整文件路径 | destinationObject | Y | String |
参数举例:
{
"sourceObject": "MDM/MULE/1000004574_BatchMaster_20220707-142424-100.xml",
"destinationObject": "MDM/MULE/ERROR/1000004574_BatchMaster_20220707-142424-100.xml"
}
返回值:
Field Description | Field Name | Type |
---|---|---|
成功标识 | Code | String |
返回值举例:
{
"Code": "Success"
}
Delete Object
接口请求地址: /object/delete
接口描述: 传入文件完整路径,将该文件进行删除。
接口请求Method: HTTP POST
注意:此功能无法删除文件夹,只能删除具体文件。
Header参数:
通用Header参数,无额外参数。
Request Body 说明:
描述 | 参数名 | 是否必填 | 数据类型 |
---|---|---|---|
需要获取内容的文件的完整路径 | path | Y | String |
参数举例:
{
"path":"MDM/MULE/BACKUP/202210/4000004574_BatchMaster_20220622-142424-344.xml"
}
返回值:
Field Description | Field Name | Type |
---|---|---|
成功标识 | Code | String |
返回值举例:
{
"Code": "Success"
}
目前无论被删除的文件是否存在,都会返回成功。
View Object
接口请求地址: /object/view
接口描述: 接口list,put,upload等返回的viewPath,可以直接展示文件内容。
接口请求Method: HTTP GET
Header参数:
鉴权参数正常,oss连接方式只能使用预先在数据库中写入连接信息作为OSS Key的方式。
说明 | 参数名 | 是否必填 | 类型 |
---|---|---|---|
预先记录的OSS连接信息数据条目的主键key | oss | Y | String |
示例Url
https://schm-api-test.shiseido.cn/schm-oss-processing-sapi/object/view?oss=mdm&path=MDM/MULE/BACKUP/TEST/test2.file
将会直接展示文件内容,支持pdf和图片类型等。